/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package mx.servicesnpayroll.model;

import java.io.Serializable;
import java.util.Date;
import javax.persistence.Basic;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.NamedQueries;
import javax.persistence.NamedQuery;
import javax.persistence.Table;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;
import javax.validation.constraints.NotNull;
import javax.xml.bind.annotation.XmlRootElement;

/**
 *
 * @author Grnmnd
 */
@Entity
@Table(name = "membresiademiembro")
@XmlRootElement
@NamedQueries({
    @NamedQuery(name = "Membresiademiembro.findAll", query = "SELECT m FROM Membresiademiembro m"),
    @NamedQuery(name = "Membresiademiembro.findByIdMembresiaDeMiembro", query = "SELECT m FROM Membresiademiembro m WHERE m.idMembresiaDeMiembro = :idMembresiaDeMiembro"),
    @NamedQuery(name = "Membresiademiembro.findByInicio", query = "SELECT m FROM Membresiademiembro m WHERE m.inicio = :inicio"),
    @NamedQuery(name = "Membresiademiembro.findByActiva", query = "SELECT m FROM Membresiademiembro m WHERE m.activa = :activa"),
    @NamedQuery(name = "Membresiademiembro.findByFin", query = "SELECT m FROM Membresiademiembro m WHERE m.fin = :fin")})
public class Membresiademiembro implements Serializable {
    private static final long serialVersionUID = 1L;
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    @Basic(optional = false)
    @Column(name = "idMembresiaDeMiembro")
    private Integer idMembresiaDeMiembro;
    @Basic(optional = false)
    @NotNull
    @Column(name = "inicio")
    @Temporal(TemporalType.TIMESTAMP)
    private Date inicio;
    @Basic(optional = false)
    @NotNull
    @Column(name = "activa")
    private boolean activa;
    @Basic(optional = false)
    @NotNull
    @Column(name = "fin")
    @Temporal(TemporalType.TIMESTAMP)
    private Date fin;
    @JoinColumn(name = "Miembros_idMiembro", referencedColumnName = "idMiembro")
    @ManyToOne(optional = false)
    private Miembro miembrosidMiembro;
    @JoinColumn(name = "Membresias_idMembresia", referencedColumnName = "idMembresia")
    @ManyToOne(optional = false)
    private Membresia membresiasidMembresia;

    public Membresiademiembro() {
    }

    public Membresiademiembro(Integer idMembresiaDeMiembro) {
        this.idMembresiaDeMiembro = idMembresiaDeMiembro;
    }

    public Membresiademiembro(Integer idMembresiaDeMiembro, Date inicio, boolean activa, Date fin) {
        this.idMembresiaDeMiembro = idMembresiaDeMiembro;
        this.inicio = inicio;
        this.activa = activa;
        this.fin = fin;
    }

    public Integer getIdMembresiaDeMiembro() {
        return idMembresiaDeMiembro;
    }

    public void setIdMembresiaDeMiembro(Integer idMembresiaDeMiembro) {
        this.idMembresiaDeMiembro = idMembresiaDeMiembro;
    }

    public Date getInicio() {
        return inicio;
    }

    public void setInicio(Date inicio) {
        this.inicio = inicio;
    }

    public boolean getActiva() {
        return activa;
    }

    public void setActiva(boolean activa) {
        this.activa = activa;
    }

    public Date getFin() {
        return fin;
    }

    public void setFin(Date fin) {
        this.fin = fin;
    }

    public Miembro getMiembrosidMiembro() {
        return miembrosidMiembro;
    }

    public void setMiembrosidMiembro(Miembro miembrosidMiembro) {
        this.miembrosidMiembro = miembrosidMiembro;
    }

    public Membresia getMembresiasidMembresia() {
        return membresiasidMembresia;
    }

    public void setMembresiasidMembresia(Membresia membresiasidMembresia) {
        this.membresiasidMembresia = membresiasidMembresia;
    }

    @Override
    public int hashCode() {
        int hash = 0;
        hash += (idMembresiaDeMiembro != null ? idMembresiaDeMiembro.hashCode() : 0);
        return hash;
    }

    @Override
    public boolean equals(Object object) {
        // TODO: Warning - this method won't work in the case the id fields are not set
        if (!(object instanceof Membresiademiembro)) {
            return false;
        }
        Membresiademiembro other = (Membresiademiembro) object;
        if ((this.idMembresiaDeMiembro == null && other.idMembresiaDeMiembro != null) || (this.idMembresiaDeMiembro != null && !this.idMembresiaDeMiembro.equals(other.idMembresiaDeMiembro))) {
            return false;
        }
        return true;
    }

    @Override
    public String toString() {
        return "mx.servicesnpayroll.model.Membresiademiembro[ idMembresiaDeMiembro=" + idMembresiaDeMiembro + " ]";
    }
    
}
